
<!DOCTYPE html>
<html class="client-nojs" lang="en" dir="ltr">
<head>
<meta charset="UTF-8"/>
<title>Parallax - PanoTools.org Wiki</title>




<style media="screen" type="text/css" title="Screen style sheet"> @import url(manual.css); </style>

<meta name="generator" content="MediaWiki 1.35.3"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>





<!--[if lt IE 9]><![endif]-->
</head>
<body class="mediawiki ltr sitedir-ltr mw-hide-empty-elt ns-0 ns-subject page-Parallax rootpage-Parallax skin-vector action-view skin-vector-legacy">


<div id="content" class="mw-body" role="main">
	<a id="top"></a>
	
	
	<h1 id="firstHeading" class="firstHeading" lang="en">Parallax</h1>
	<div id="bodyContent" class="mw-body-content">
		<div id="siteSub" class="noprint">From PanoTools.org Wiki</div>
		
		
		
		
		
		
		<div id="mw-content-text" lang="en" dir="ltr" class="mw-content-ltr"><div class="mw-parser-output"><p><br />
</p>
<div id="toc" class="toc" role="navigation" aria-labelledby="mw-toc-heading"><input type="checkbox" role="button" id="toctogglecheckbox" class="toctogglecheckbox" style="display:none" />
<ul>





</ul>
</div>

<h2><a name="Intro"><span class="mw-headline">Intro</span></a></h2>
<div class="thumb tright"><div class="thumbinner" style="width:322px;"><a class="external" href="https://wiki.panotools.org/File:Parallax.gif"><img alt="" src="Parallax.gif" decoding="async" width="320" height="320" class="thumbimage" /></a>  <div class="thumbcaption">Parallax demo &#169; Bernhard Vogl <small>(<a href="GIF.html" title="GIF">GIF</a> animation must be turned on)</small></div></div></div>
<p>If you shoot the same scene from a slightly different point of view, the foreground will be shifted in relation to the background, as in this example image.
</p><p>Parallax occures in panoramic photography if camera and lens are not rotated around the <a href="Entrance_pupil.html" class="mw-redirect" title="Entrance pupil">Entrance pupil</a> of the lens. A difference caused by parallax will be visible in the overlap between two adjacent images. 
</p><p>Parallax errors are sometimes very hard to retouch, since necessary background details might be obscured by foreground details. A useful way to fix these kinds of errors is to 'invent' some background details.
</p>
<h2><a name="Calculation"><span class="mw-headline">Calculation</span></a></h2>
<p>Parallax depends on 
the object distance <span class="mwe-math-element"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML"  alttext="{\displaystyle d\,}">
  <semantics>
    <mrow class="MJX-TeXAtom-ORD">
      <mstyle displaystyle="true" scriptlevel="0">
        <mi>d</mi>
        <mspace width="thinmathspace" />
      </mstyle>
    </mrow>
    <annotation encoding="application/x-tex">{\displaystyle d\,}</annotation>
  </semantics>
</math></span><img src="0f203b686a923982358b9274fb508753ac31b996.png" class="mwe-math-fallback-image-inline" aria-hidden="true" style="vertical-align: -0.338ex; width:1.603ex; height:2.176ex;" alt="{\displaystyle d\,}"/></span>, the displacement of the no-parallax-point <span class="mwe-math-element"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML"  alttext="{\displaystyle r\,}">
  <semantics>
    <mrow class="MJX-TeXAtom-ORD">
      <mstyle displaystyle="true" scriptlevel="0">
        <mi>r</mi>
        <mspace width="thinmathspace" />
      </mstyle>
    </mrow>
    <annotation encoding="application/x-tex">{\displaystyle r\,}</annotation>
  </semantics>
</math></span><img src="f08ce4d4c86c5b43f36c8435fb598da6471047c6.png" class="mwe-math-fallback-image-inline" aria-hidden="true" style="vertical-align: -0.338ex; width:1.436ex; height:1.676ex;" alt="{\displaystyle r\,}"/></span> and 
half the rotation angle between two shots, the off axis angle <span class="mwe-math-element"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML"  alttext="{\displaystyle \alpha \,}">
  <semantics>
    <mrow class="MJX-TeXAtom-ORD">
      <mstyle displaystyle="true" scriptlevel="0">
        <mi>&#x03B1;<!-- α --></mi>
        <mspace width="thinmathspace" />
      </mstyle>
    </mrow>
    <annotation encoding="application/x-tex">{\displaystyle \alpha \,}</annotation>
  </semantics>
</math></span><img src="652e1fd9c3a2ca00e1a517783cdbb0e18e4181f8.png" class="mwe-math-fallback-image-inline" aria-hidden="true" style="vertical-align: -0.338ex; width:1.875ex; height:1.676ex;" alt="{\displaystyle \alpha \,}"/></span>. Then the half parallax angle <span class="mwe-math-element"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML"  alttext="{\displaystyle \beta \,}">
  <semantics>
    <mrow class="MJX-TeXAtom-ORD">
      <mstyle displaystyle="true" scriptlevel="0">
        <mi>&#x03B2;<!-- β --></mi>
        <mspace width="thinmathspace" />
      </mstyle>
    </mrow>
    <annotation encoding="application/x-tex">{\displaystyle \beta \,}</annotation>
  </semantics>
</math></span><img src="8cf629bdcc90521bb174119ac00d2f82e66b6858.png" class="mwe-math-fallback-image-inline" aria-hidden="true" style="vertical-align: -0.671ex; width:1.719ex; height:2.509ex;" alt="{\displaystyle \beta \,}"/></span> will be: 
<span class="mwe-math-element"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML"  alttext="{\displaystyle \beta =atan{\frac {r*sin(\alpha )}{d-r*cos(\alpha )}}}">
  <semantics>
    <mrow class="MJX-TeXAtom-ORD">
      <mstyle displaystyle="true" scriptlevel="0">
        <mi>&#x03B2;<!-- β --></mi>
        <mo>=</mo>
        <mi>a</mi>
        <mi>t</mi>
        <mi>a</mi>
        <mi>n</mi>
        <mrow class="MJX-TeXAtom-ORD">
          <mfrac>
            <mrow>
              <mi>r</mi>
              <mo>&#x2217;<!-- ∗ --></mo>
              <mi>s</mi>
              <mi>i</mi>
              <mi>n</mi>
              <mo stretchy="false">(</mo>
              <mi>&#x03B1;<!-- α --></mi>
              <mo stretchy="false">)</mo>
            </mrow>
            <mrow>
              <mi>d</mi>
              <mo>&#x2212;<!-- − --></mo>
              <mi>r</mi>
              <mo>&#x2217;<!-- ∗ --></mo>
              <mi>c</mi>
              <mi>o</mi>
              <mi>s</mi>
              <mo stretchy="false">(</mo>
              <mi>&#x03B1;<!-- α --></mi>
              <mo stretchy="false">)</mo>
            </mrow>
          </mfrac>
        </mrow>
      </mstyle>
    </mrow>
    <annotation encoding="application/x-tex">{\displaystyle \beta =atan{\frac {r*sin(\alpha )}{d-r*cos(\alpha )}}}</annotation>
  </semantics>
</math></span><img src="36408bbe3513b733d360cf77918a5cbfbedef425.png" class="mwe-math-fallback-image-inline" aria-hidden="true" style="vertical-align: -2.671ex; width:23.782ex; height:6.509ex;" alt="{\displaystyle \beta =atan{\frac {r*sin(\alpha )}{d-r*cos(\alpha )}}}"/></span>
</p><p>Since <span class="mwe-math-element"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML"  alttext="{\displaystyle d\,}">
  <semantics>
    <mrow class="MJX-TeXAtom-ORD">
      <mstyle displaystyle="true" scriptlevel="0">
        <mi>d</mi>
        <mspace width="thinmathspace" />
      </mstyle>
    </mrow>
    <annotation encoding="application/x-tex">{\displaystyle d\,}</annotation>
  </semantics>
</math></span><img src="0f203b686a923982358b9274fb508753ac31b996.png" class="mwe-math-fallback-image-inline" aria-hidden="true" style="vertical-align: -0.338ex; width:1.603ex; height:2.176ex;" alt="{\displaystyle d\,}"/></span> usually is far larger than <span class="mwe-math-element"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML"  alttext="{\displaystyle r\,}">
  <semantics>
    <mrow class="MJX-TeXAtom-ORD">
      <mstyle displaystyle="true" scriptlevel="0">
        <mi>r</mi>
        <mspace width="thinmathspace" />
      </mstyle>
    </mrow>
    <annotation encoding="application/x-tex">{\displaystyle r\,}</annotation>
  </semantics>
</math></span><img src="f08ce4d4c86c5b43f36c8435fb598da6471047c6.png" class="mwe-math-fallback-image-inline" aria-hidden="true" style="vertical-align: -0.338ex; width:1.436ex; height:1.676ex;" alt="{\displaystyle r\,}"/></span> this could be abbreviated to <span class="mwe-math-element"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML"  alttext="{\displaystyle \beta =atan{\frac {r*sin(\alpha )}{d}}}">
  <semantics>
    <mrow class="MJX-TeXAtom-ORD">
      <mstyle displaystyle="true" scriptlevel="0">
        <mi>&#x03B2;<!-- β --></mi>
        <mo>=</mo>
        <mi>a</mi>
        <mi>t</mi>
        <mi>a</mi>
        <mi>n</mi>
        <mrow class="MJX-TeXAtom-ORD">
          <mfrac>
            <mrow>
              <mi>r</mi>
              <mo>&#x2217;<!-- ∗ --></mo>
              <mi>s</mi>
              <mi>i</mi>
              <mi>n</mi>
              <mo stretchy="false">(</mo>
              <mi>&#x03B1;<!-- α --></mi>
              <mo stretchy="false">)</mo>
            </mrow>
            <mi>d</mi>
          </mfrac>
        </mrow>
      </mstyle>
    </mrow>
    <annotation encoding="application/x-tex">{\displaystyle \beta =atan{\frac {r*sin(\alpha )}{d}}}</annotation>
  </semantics>
</math></span><img src="927996686539d9eacf2e62a8cf730cc117529091.png" class="mwe-math-fallback-image-inline" aria-hidden="true" style="vertical-align: -2.005ex; width:19.788ex; height:5.843ex;" alt="{\displaystyle \beta =atan{\frac {r*sin(\alpha )}{d}}}"/></span>
</p><p><span class="mwe-math-element"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML"  alttext="{\displaystyle \beta \,}">
  <semantics>
    <mrow class="MJX-TeXAtom-ORD">
      <mstyle displaystyle="true" scriptlevel="0">
        <mi>&#x03B2;<!-- β --></mi>
        <mspace width="thinmathspace" />
      </mstyle>
    </mrow>
    <annotation encoding="application/x-tex">{\displaystyle \beta \,}</annotation>
  </semantics>
</math></span><img src="8cf629bdcc90521bb174119ac00d2f82e66b6858.png" class="mwe-math-fallback-image-inline" aria-hidden="true" style="vertical-align: -0.671ex; width:1.719ex; height:2.509ex;" alt="{\displaystyle \beta \,}"/></span> applies in both images that overlap in opposite directions, hence the value must be doubled to get the actual parallax error. Now the maximum error in pixels for the ready stitched panorama can be calculated: For a 360° panorama (and <span class="mwe-math-element"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML"  alttext="{\displaystyle \beta \,}">
  <semantics>
    <mrow class="MJX-TeXAtom-ORD">
      <mstyle displaystyle="true" scriptlevel="0">
        <mi>&#x03B2;<!-- β --></mi>
        <mspace width="thinmathspace" />
      </mstyle>
    </mrow>
    <annotation encoding="application/x-tex">{\displaystyle \beta \,}</annotation>
  </semantics>
</math></span><img src="8cf629bdcc90521bb174119ac00d2f82e66b6858.png" class="mwe-math-fallback-image-inline" aria-hidden="true" style="vertical-align: -0.671ex; width:1.719ex; height:2.509ex;" alt="{\displaystyle \beta \,}"/></span> in degree) this is simply <span class="mwe-math-element"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML"  alttext="{\displaystyle PixelError={\frac {2*\beta *PanoramaWidth}{360}}}">
  <semantics>
    <mrow class="MJX-TeXAtom-ORD">
      <mstyle displaystyle="true" scriptlevel="0">
        <mi>P</mi>
        <mi>i</mi>
        <mi>x</mi>
        <mi>e</mi>
        <mi>l</mi>
        <mi>E</mi>
        <mi>r</mi>
        <mi>r</mi>
        <mi>o</mi>
        <mi>r</mi>
        <mo>=</mo>
        <mrow class="MJX-TeXAtom-ORD">
          <mfrac>
            <mrow>
              <mn>2</mn>
              <mo>&#x2217;<!-- ∗ --></mo>
              <mi>&#x03B2;<!-- β --></mi>
              <mo>&#x2217;<!-- ∗ --></mo>
              <mi>P</mi>
              <mi>a</mi>
              <mi>n</mi>
              <mi>o</mi>
              <mi>r</mi>
              <mi>a</mi>
              <mi>m</mi>
              <mi>a</mi>
              <mi>W</mi>
              <mi>i</mi>
              <mi>d</mi>
              <mi>t</mi>
              <mi>h</mi>
            </mrow>
            <mn>360</mn>
          </mfrac>
        </mrow>
      </mstyle>
    </mrow>
    <annotation encoding="application/x-tex">{\displaystyle PixelError={\frac {2*\beta *PanoramaWidth}{360}}}</annotation>
  </semantics>
</math></span><img src="be171a7c8c559cc35aaec70416b787efc4aebe31.png" class="mwe-math-fallback-image-inline" aria-hidden="true" style="vertical-align: -1.838ex; width:40.2ex; height:5.343ex;" alt="{\displaystyle PixelError={\frac {2*\beta *PanoramaWidth}{360}}}"/></span>
</p>
<h2><a name="Examples"><span class="mw-headline">Examples</span></a></h2>
<p>If you shoot 4 images around, <span class="mwe-math-element"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML"  alttext="{\displaystyle \alpha \,}">
  <semantics>
    <mrow class="MJX-TeXAtom-ORD">
      <mstyle displaystyle="true" scriptlevel="0">
        <mi>&#x03B1;<!-- α --></mi>
        <mspace width="thinmathspace" />
      </mstyle>
    </mrow>
    <annotation encoding="application/x-tex">{\displaystyle \alpha \,}</annotation>
  </semantics>
</math></span><img src="652e1fd9c3a2ca00e1a517783cdbb0e18e4181f8.png" class="mwe-math-fallback-image-inline" aria-hidden="true" style="vertical-align: -0.338ex; width:1.875ex; height:1.676ex;" alt="{\displaystyle \alpha \,}"/></span> is 45°. Given an object 1m from the lens the maximum (relative to infinity) parallax error will be for a displacement <span class="mwe-math-element"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML"  alttext="{\displaystyle r\,}">
  <semantics>
    <mrow class="MJX-TeXAtom-ORD">
      <mstyle displaystyle="true" scriptlevel="0">
        <mi>r</mi>
        <mspace width="thinmathspace" />
      </mstyle>
    </mrow>
    <annotation encoding="application/x-tex">{\displaystyle r\,}</annotation>
  </semantics>
</math></span><img src="f08ce4d4c86c5b43f36c8435fb598da6471047c6.png" class="mwe-math-fallback-image-inline" aria-hidden="true" style="vertical-align: -0.338ex; width:1.436ex; height:1.676ex;" alt="{\displaystyle r\,}"/></span> of the no-parallax-point:
</p>
<table border="2" cellspacing="0" cellpadding="5" rules="all" class="rahmenfarbe1" style="margin:1em 1em 1em 0; border-style:solid; border-width:1px; border-collapse:collapse; empty-cells:show">

<tbody><tr>
<th><span class="mwe-math-element"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML"  alttext="{\displaystyle r\,}">
  <semantics>
    <mrow class="MJX-TeXAtom-ORD">
      <mstyle displaystyle="true" scriptlevel="0">
        <mi>r</mi>
        <mspace width="thinmathspace" />
      </mstyle>
    </mrow>
    <annotation encoding="application/x-tex">{\displaystyle r\,}</annotation>
  </semantics>
</math></span><img src="f08ce4d4c86c5b43f36c8435fb598da6471047c6.png" class="mwe-math-fallback-image-inline" aria-hidden="true" style="vertical-align: -0.338ex; width:1.436ex; height:1.676ex;" alt="{\displaystyle r\,}"/></span>
</th>
<th>8000px width
</th>
<th>12000px width
</th></tr>
<tr>
<td>1mm
</td>
<td>1.8px
</td>
<td>2.7px
</td></tr>
<tr>
<td>5mm
</td>
<td>9px
</td>
<td>14px
</td></tr>
<tr>
<td>10mm
</td>
<td>18px
</td>
<td>27px
</td></tr>
<tr>
<td>20mm
</td>
<td>37px
</td>
<td>55px
</td></tr></tbody></table>
<p>If you shoot 6 images around, <span class="mwe-math-element"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML"  alttext="{\displaystyle \alpha \,}">
  <semantics>
    <mrow class="MJX-TeXAtom-ORD">
      <mstyle displaystyle="true" scriptlevel="0">
        <mi>&#x03B1;<!-- α --></mi>
        <mspace width="thinmathspace" />
      </mstyle>
    </mrow>
    <annotation encoding="application/x-tex">{\displaystyle \alpha \,}</annotation>
  </semantics>
</math></span><img src="652e1fd9c3a2ca00e1a517783cdbb0e18e4181f8.png" class="mwe-math-fallback-image-inline" aria-hidden="true" style="vertical-align: -0.338ex; width:1.875ex; height:1.676ex;" alt="{\displaystyle \alpha \,}"/></span> is 30°. Given an object 2m from the lens the maximum (relative to infinity) parallax error will be for a displacement <span class="mwe-math-element"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML"  alttext="{\displaystyle r\,}">
  <semantics>
    <mrow class="MJX-TeXAtom-ORD">
      <mstyle displaystyle="true" scriptlevel="0">
        <mi>r</mi>
        <mspace width="thinmathspace" />
      </mstyle>
    </mrow>
    <annotation encoding="application/x-tex">{\displaystyle r\,}</annotation>
  </semantics>
</math></span><img src="f08ce4d4c86c5b43f36c8435fb598da6471047c6.png" class="mwe-math-fallback-image-inline" aria-hidden="true" style="vertical-align: -0.338ex; width:1.436ex; height:1.676ex;" alt="{\displaystyle r\,}"/></span> of the no-parallax-point:
</p>
<table border="2" cellspacing="0" cellpadding="5" rules="all" class="rahmenfarbe1" style="margin:1em 1em 1em 0; border-style:solid; border-width:1px; border-collapse:collapse; empty-cells:show">

<tbody><tr>
<th><span class="mwe-math-element"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML"  alttext="{\displaystyle r\,}">
  <semantics>
    <mrow class="MJX-TeXAtom-ORD">
      <mstyle displaystyle="true" scriptlevel="0">
        <mi>r</mi>
        <mspace width="thinmathspace" />
      </mstyle>
    </mrow>
    <annotation encoding="application/x-tex">{\displaystyle r\,}</annotation>
  </semantics>
</math></span><img src="f08ce4d4c86c5b43f36c8435fb598da6471047c6.png" class="mwe-math-fallback-image-inline" aria-hidden="true" style="vertical-align: -0.338ex; width:1.436ex; height:1.676ex;" alt="{\displaystyle r\,}"/></span>
</th>
<th>8000px width
</th>
<th>12000px width
</th></tr>
<tr>
<td>1mm
</td>
<td>0.6px
</td>
<td>1px
</td></tr>
<tr>
<td>5mm
</td>
<td>3.2px
</td>
<td>4.8px
</td></tr>
<tr>
<td>10mm
</td>
<td>6.4px
</td>
<td>9.6px
</td></tr>
<tr>
<td>20mm
</td>
<td>13px
</td>
<td>19px
</td></tr></tbody></table>
<h2><a name="See_also"><span class="mw-headline">See also</span></a></h2>
<ul><li><a href="No-parallax_point.html" title="No-parallax point">No-parallax point</a></li>
<li>Mending parallax errors with the shear tool<a class="external" href="https://wiki.panotools.org/Mending_parallax_errors_with_the_shear_tool">[*]</a></li>
<li>Entrance Pupil Database<a class="external" href="https://wiki.panotools.org/Entrance_Pupil_Database">[*]</a></li>
<li>Heads<a class="external" href="https://wiki.panotools.org/Heads">[*]</a></li></ul>
<h2><a name="External_Links"><span class="mw-headline">External Links</span></a></h2>
<p>Max Lyon's <a rel="nofollow" class="external text" href="http://www.tawbaware.com/maxlyons/calc.htm">panoramic parallax error calculator</a>.
</p>

<!--
Transclusion expansion time report (%,ms,calls,template)
100.00%   10.352      1 Template:Glossary
100.00%   10.352      1 -total
-->


</div></div><div class="printfooter">Retrieved from "<a dir="ltr" href="https://wiki.panotools.org/index.php?title=Parallax&amp;oldid=13154">https://wiki.panotools.org/index.php?title=Parallax&amp;oldid=13154</a>"</div>
		</div></div></body></html>